package org.aswing.graphics;

extern class Graphics2D {
	function new(p0 : flash.display.Graphics) : Void;
	function beginDraw(p0 : IPen) : Void;
	function beginFill(p0 : IBrush) : Void;
	function circle(p0 : Float, p1 : Float, p2 : Float) : Void;
	function clear() : Void;
	function curveTo(p0 : Float, p1 : Float, p2 : Float, p3 : Float) : Void;
	function drawCircle(p0 : IPen, p1 : Float, p2 : Float, p3 : Float) : Void;
	function drawEllipse(p0 : IPen, p1 : Float, p2 : Float, p3 : Float, p4 : Float) : Void;
	function drawLine(p0 : IPen, p1 : Float, p2 : Float, p3 : Float, p4 : Float) : Void;
	function drawPolygon(p0 : Pen, p1 : Array<Dynamic>) : Void;
	function drawPolyline(p0 : IPen, p1 : Array<Dynamic>) : Void;
	function drawRectangle(p0 : IPen, p1 : Float, p2 : Float, p3 : Float, p4 : Float) : Void;
	function drawRoundRect(p0 : IPen, p1 : Float, p2 : Float, p3 : Float, p4 : Float, p5 : Float, ?p6 : Float, ?p7 : Float, ?p8 : Float) : Void;
	function ellipse(p0 : Float, p1 : Float, p2 : Float, p3 : Float) : Void;
	function endDraw() : Void;
	function endFill() : Void;
	function fillCircle(p0 : IBrush, p1 : Float, p2 : Float, p3 : Float) : Void;
	function fillCircleRing(p0 : IBrush, p1 : Float, p2 : Float, p3 : Float, p4 : Float) : Void;
	function fillCircleRingWithThickness(p0 : IBrush, p1 : Float, p2 : Float, p3 : Float, p4 : Float) : Void;
	function fillEllipse(p0 : IBrush, p1 : Float, p2 : Float, p3 : Float, p4 : Float) : Void;
	function fillEllipseRing(p0 : IBrush, p1 : Float, p2 : Float, p3 : Float, p4 : Float, p5 : Float, p6 : Float) : Void;
	function fillEllipseRingWithThickness(p0 : IBrush, p1 : Float, p2 : Float, p3 : Float, p4 : Float, p5 : Float) : Void;
	function fillPolygon(p0 : IBrush, p1 : Array<Dynamic>) : Void;
	function fillPolygonRing(p0 : IBrush, p1 : Array<Dynamic>, p2 : Array<Dynamic>) : Void;
	function fillPolyline(p0 : IBrush, p1 : Array<Dynamic>) : Void;
	function fillRectangle(p0 : IBrush, p1 : Float, p2 : Float, p3 : Float, p4 : Float) : Void;
	function fillRectangleRing(p0 : IBrush, p1 : Float, p2 : Float, p3 : Float, p4 : Float, p5 : Float, p6 : Float) : Void;
	function fillRectangleRingWithThickness(p0 : IBrush, p1 : Float, p2 : Float, p3 : Float, p4 : Float, p5 : Float) : Void;
	function fillRoundRect(p0 : IBrush, p1 : Float, p2 : Float, p3 : Float, p4 : Float, p5 : Float, ?p6 : Float, ?p7 : Float, ?p8 : Float) : Void;
	function fillRoundRectRing(p0 : IBrush, p1 : Float, p2 : Float, p3 : Float, p4 : Float, p5 : Float, p6 : Float, p7 : Float, p8 : Float) : Void;
	function fillRoundRectRingWithThickness(p0 : IBrush, p1 : Float, p2 : Float, p3 : Float, p4 : Float, p5 : Float, p6 : Float, ?p7 : Float) : Void;
	function line(p0 : Float, p1 : Float, p2 : Float, p3 : Float) : Void;
	function lineTo(p0 : Float, p1 : Float) : Void;
	function moveTo(p0 : Float, p1 : Float) : Void;
	function polygon(p0 : Array<Dynamic>) : Void;
	function polyline(p0 : Array<Dynamic>) : Void;
	function rectangle(p0 : Float, p1 : Float, p2 : Float, p3 : Float) : Void;
	function roundRect(p0 : Float, p1 : Float, p2 : Float, p3 : Float, p4 : Float, ?p5 : Float, ?p6 : Float, ?p7 : Float) : Void;
	function wedge(p0 : Float, p1 : Float, p2 : Float, p3 : Float) : Void;
	private var target : flash.display.Graphics;
	private function dispose() : Void;
	private function setTarget(p0 : flash.display.Graphics) : Void;
}
